package com.info33.platform.system.service;

import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.info33.platform.common.mvc.vo.Result;
import com.info33.platform.system.dto.SysAuthorityDetailDTO;
import com.info33.platform.system.dto.SysMenuUserDTO;
import com.info33.platform.system.entity.SysMenuUser;
import com.info33.platform.system.vo.SysAuthorityDetailVO;
import com.info33.platform.system.vo.SysAuthorityVO;
import com.info33.platform.system.vo.SysMenuUserVO;

/**
 * @author admin
 */
public interface SysMenuUserService extends IService<SysMenuUser> {

	/**
	 * 分页查询菜单权限列表
	 * @param page
	 * @param sysMenuUser
	 * @param tenantId
	 * @return
	 */
	IPage<SysAuthorityVO> pageMenuUserList(IPage<SysAuthorityVO> page, SysMenuUser sysMenuUser, Long tenantId);

	/**
	 * 新增菜单权限
	 * @param sysMenuUserDTO
	 * @param tenantId
	 * @return
	 */
	Result<?> saveMenuUser(SysMenuUserDTO sysMenuUserDTO, Long tenantId);

	/**
	 * 编辑菜单权限
	 * @param sysMenuUserDTO
	 * @param tenantId
	 * @return
	 */
	Result<?> editMenuUser(SysMenuUserDTO sysMenuUserDTO, Long tenantId);

	/**
	 * 批量删除菜单权限
	 * @param authorityDetailList
	 * @param tenantId
	 * @return
	 */
	Result<?> batchRemove(List<SysAuthorityDetailDTO> authorityDetailList, Long tenantId);

	/**
	 * 获取菜单权限详情
	 * @param sysAuthorityDetailDTO
	 * @param tenantId
	 * @return
	 */
	SysAuthorityDetailVO getDetail(SysAuthorityDetailDTO sysAuthorityDetailDTO, Long tenantId);

	/**
	 * 获取菜单对应权限
	 * @param menuId 菜单id
	 * @return
	 */
	Map<Integer,List<SysMenuUserVO>> getAuthority(Long menuId);


}